#include "qdialoglist.h"
#include "ui_qdialoglist.h"
#include<QToolButton>
#include"widget.h"
#include<QMessageBox>

QDialogList::QDialogList(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::QDialogList)
{
    ui->setupUi(this);
    //设置标题
    this->setWindowTitle("MyQQ2021");
    //设置图标
    this->setWindowIcon(QPixmap(":/qqimages/qq.png"));
    QList<QString>nameList;
    nameList<<"斧头帮帮主"<<"狗头"<<"落花满天"<<"飘雪"<<"清风"
        <<"世界的尽头"<<"听海"<<"西门飘雪"<<"下次换你心动";

    QStringList iconNameList;//图标资源列表
    iconNameList<<"斧头帮帮主"<<"狗头"<<"落花满天"<<"飘雪"<<"清风"
        <<"世界的尽头"<<"听海"<<"西门飘雪"<<"下次换你心动";
    QVector<QToolButton*>vToolbtn;
    for(int i=0;i<9;i++)
    {
        //创建对象
        QToolButton *btn=new QToolButton;
        //设置图像文字
        btn->setText(nameList[i]);
        //设置头像
        QString str=QString(":/qqimages/%1.png").arg(iconNameList.at(i));
        btn->setIcon(QPixmap(str));
        //设置头像大小
        btn->setIconSize(QPixmap(str).size());
        //设置头像风格尾为透明
        btn->setAutoRaise(true);
        //设置文字和图片一起显示
        btn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        //将图片和文字放在垂直布局中
        ui->vLayout->addWidget(btn);
        //用vector容器保存9个按钮，方便以后的点击操作
        vToolbtn.push_back(btn);
        //初始化为不可显示
        isShow.push_back(false);
    }
    //对9个按钮进行添加信号和槽
    for(int i=0;i<vToolbtn.size();i++)
    {
        //弹出聊天框
        connect(vToolbtn[i],&QToolButton::clicked,[=](){
            //如果窗口被打开，就无法再次点击打开
            if(isShow[i])
            {
                QString str=QString("%1的窗口已被打开").arg(vToolbtn[i]->text());
                QMessageBox::warning(this,"警告",str);
                return;
            }
            isShow[i]=true;
            //构造 聊天窗口 参数1：以顶层窗口方式弹出 参数2：聊天框的 名字
            Widget*widget=new Widget(nullptr,vToolbtn[i]->text());
            widget->setWindowTitle(vToolbtn[i]->text());
            widget->setWindowIcon(vToolbtn[i]->icon());
            widget->show();
            connect(widget,&Widget::closeWidget,[=](){
               isShow[i]=false;
            });
        });
    }


}

QDialogList::~QDialogList()
{
    delete ui;
}
